﻿#pragma once

#include <Unknwnbase.h>

// {09FCAE6B-8F00-4C0A-BBCA-C6820B576C99}
static const GUID DirectShowPhysicalType =
{ 0x9fcae6b, 0x8f00, 0x4c0a, { 0xbb, 0xca, 0xc6, 0x82, 0xb, 0x57, 0x6c, 0x99 } };

// {4359427E-B1CA-4A68-B99F-00E5DF740578}
static const GUID CM_SwapChain =
{ 0x4359427e, 0xb1ca, 0x4a68, { 0xb9, 0x9f, 0x0, 0xe5, 0xdf, 0x74, 0x5, 0x78 } };

// {1816B67A-CC02-404E-92D6-7DD883756984}
static const GUID CM_RenderTexture =
{ 0x1816b67a, 0xcc02, 0x404e, { 0x92, 0xd6, 0x7d, 0xd8, 0x83, 0x75, 0x69, 0x84 } };

// {4655D016-1592-415E-A4A7-FED4EB1C887A}
static const GUID CM_SourceStride =
{ 0x4655d016, 0x1592, 0x415e, { 0xa4, 0xa7, 0xfe, 0xd4, 0xeb, 0x1c, 0x88, 0x7a } };

// {FA80E272-789C-4340-B3EB-BF7BA66739A5}
static const GUID CM_SwitcherNode =
{ 0xfa80e272, 0x789c, 0x4340, { 0xb3, 0xeb, 0xbf, 0x7b, 0xa6, 0x67, 0x39, 0xa5 } };

// {b3f8fa53-0004-438e-9003-51a46e139bfc}
static const GUID CM_MMDeviceDeviceInstanceLink =
{ 0xb3f8fa53, 0x0004, 0x438e, { 0x90, 0x03, 0x51, 0xa4, 0x6e, 0x13, 0x9b, 0xfc } };

// {C1D16F31-E3F5-4623-A518-603B451EBCFF}
static const GUID CM_DEVICE_LINK =
{ 0xc1d16f31, 0xe3f5, 0x4623, { 0xa5, 0x18, 0x60, 0x3b, 0x45, 0x1e, 0xbc, 0xff } };

// {6E77FC1E-EA04-407E-AB8C-39DD904E3CFD}
static const GUID CM_DeviceManager =
{ 0x6e77fc1e, 0xea04, 0x407e, { 0xab, 0x8c, 0x39, 0xdd, 0x90, 0x4e, 0x3c, 0xfd } };

// {179B7A05-496A-4C9F-B8C6-15F04E669595}
static const GUID CM_DirectX11_Capture_Texture =
{ 0x179b7a05, 0x496a, 0x4c9f, { 0xb8, 0xc6, 0x15, 0xf0, 0x4e, 0x66, 0x95, 0x95 } };

//// {5D7DBCB7-2BB5-4E38-B711-47580EBB1B72}
//static const GUID CM_DirectX11_Texture_Callback_Grabber =
//{ 0x5d7dbcb7, 0x2bb5, 0x4e38, { 0xb7, 0x11, 0x47, 0x58, 0xe, 0xbb, 0x1b, 0x72 } };

// {21-7AAC-4002-8C00-833ED59167EF}
static const GUID MFVideoFormat_ABGR32 =
{ 21, 0x7aac, 0x4002, { 0x8c, 0x0, 0x83, 0x3e, 0xd5, 0x91, 0x67, 0xef } };

// {67B6F4CC-C9A7-49E4-B114-E9B8EABB12F7}
static const GUID CM_Is_Flipped =
{ 0x67b6f4cc, 0xc9a7, 0x49e4, { 0xb1, 0x14, 0xe9, 0xb8, 0xea, 0xbb, 0x12, 0xf7 } };

// {4B0E39C1-F447-4D10-B181-3F3AC5FF6EF4}
static const GUID CM_Sample_Buffer =
{ 0x4b0e39c1, 0xf447, 0x4d10, { 0xb1, 0x81, 0x3f, 0x3a, 0xc5, 0xff, 0x6e, 0xf4 } };

//// {3192DD55-B056-4770-B0CC-F0676F85855C}
//static const GUID CM_Buffer_Is_Filled =
//{ 0x3192dd55, 0xb056, 0x4770, { 0xb0, 0xcc, 0xf0, 0x67, 0x6f, 0x85, 0x85, 0x5c } };

// {63BCBEBB-03D3-4BF9-B233-AECCAE6E15E8}
static const GUID CM_DURATION_PERIOD =
{ 0x63bcbebb, 0x3d3, 0x4bf9, { 0xb2, 0x33, 0xae, 0xcc, 0xae, 0x6e, 0x15, 0xe8 } };

// {DD0570F7-0D02-4897-A55E-F65BFACA1955}
static const GUID CM_DIRECT_CALL =
{ 0xdd0570f7, 0xd02, 0x4897, { 0xa5, 0x5e, 0xf6, 0x5b, 0xfa, 0xca, 0x19, 0x55 } };

// {5F690900-0A1F-41D0-8946-BDF051B5DC8E}
static const GUID CM_TARGET_NODE =
{ 0x5f690900, 0xa1f, 0x41d0, { 0x89, 0x46, 0xbd, 0xf0, 0x51, 0xb5, 0xdc, 0x8e } };

// {D1FCB669-778D-4297-9EDA-335E532C9962}
static const GUID CM_HEADER =
{ 0xd1fcb669, 0x778d, 0x4297, { 0x9e, 0xda, 0x33, 0x5e, 0x53, 0x2c, 0x99, 0x62 } };

// {4B030EC4-DB70-41DC-AD9C-37186797D851}
static const GUID CM_FLIPPED =
{ 0x4b030ec4, 0xdb70, 0x41dc, { 0xad, 0x9c, 0x37, 0x18, 0x67, 0x97, 0xd8, 0x51 } };

// {90BAF683-28D0-4999-9F75-2E251B5C9C6E}
static const GUID CM_MixerNode =
{ 0x90baf683, 0x28d0, 0x4999, { 0x9f, 0x75, 0x2e, 0x25, 0x1b, 0x5c, 0x9c, 0x6e } };

// {E02DF977-D4DF-40B2-AEDA-6718B267E3E5}
static const GUID CM_SAROutputNode =
{ 0xe02df977, 0xd4df, 0x40b2, { 0xae, 0xda, 0x67, 0x18, 0xb2, 0x67, 0xe3, 0xe5 } };

// {44FE158D-E104-49BB-8905-BDB4DD3948D7}
static const GUID CM_Sink =
{ 0x44fe158d, 0xe104, 0x49bb, { 0x89, 0x5, 0xbd, 0xb4, 0xdd, 0x39, 0x48, 0xd7 } };


// The CLSID of the video processor media foundation transform which we use for
// texture color conversion in DX11.
//static const GUID CLSID_VideoProcessorMFT =
//{ 0x88753b26, 0x5b24, 0x49bd, {0xb2, 0xe7, 0xc, 0x44, 0x5c, 0x78,
//	0xc9, 0x82 }};



#define CleanPoint 1

#define HeaderFlag  1 << 31
